package com.saianfu.flowable.demo.common

import org.flowable.task.api.history.HistoricTaskInstance
import org.flowable.task.api.history.HistoricTaskInstanceQuery

/**
 * 历史任务封装
 *
 */
interface ActHistTaskQuery {
    /**
     * 历史流程任务查询对象获取
     *
     * @return
     */
    fun createHistoricTaskInstanceQuery(): HistoricTaskInstanceQuery?

    /**
     * 通过流程实例id，查询活动任务
     *
     * @param instanceId
     * @return
     */
    fun activeTask(instanceId: String): HistoricTaskInstance

    /**
     * 通过流程任务id，查询活动任务
     *
     * @param taskId 流程任务ID
     * @return
     */
    fun finishedTask(taskId: String): HistoricTaskInstance

    /**
     * 通过流程实例ID，查询所有任务
     *
     * @param instanceId 流程实例ID
     * @return
     */
    fun listByInstanceId(instanceId: String): List<HistoricTaskInstance>

    /**
     * 通过流程实例ID，分页查询所有任务
     *
     * @param instanceId 流程实例ID
     * @param start 查询页数
     * @param limit 查询数量
     * @return
     */
    fun pageListByInstanceId(instanceId: String, start: Int, limit: Int): List<HistoricTaskInstance>
}